package com.yam.michael.service;

import java.util.List;

import com.xunjia.exception.XunjiaException;
import com.yam.michael.hibernate.pojo.*;

public interface IUserService {
	/**
	 * 用户注册(购买超链接广告时)
	 * @param type 注册类型,TC为企业用户 ,TB为个人用户
	 * @param userInfo  用户信息
	 * @param company  如果为企业用户注册,企业信息,个人用户为空
	 * @param wallet   钱包信息
	 * @param hperlinkAdvInfo 超链接广告信息
	 * @return
	 * @throws XunjiaException
	 */
	public UserInfo register(String type,UserInfo userInfo,Company company,Wallet wallet,HyperlinkAdvInfo hperlinkAdvInfo) throws XunjiaException;
	/**
	 * 
	 * @param type 注册类型,TC为企业用户 ,TB为个人用户
	 * @param userInfo  用户信息
	 * @param company  如果为企业用户注册,企业信息,个人用户为空
	 * @param wallet   钱包信息
	 * @param keywordslist  关键字列表
	 * @param keywordsAdvInfo  关键字信息
	 * @return
	 * @throws XunjiaException
	 */
	public UserInfo register(String type,UserInfo userInfo,Company company,Wallet wallet,List<Keywords> keywordslist,List<KeywordsAdvInfo> keywordsAdvInfoList)throws XunjiaException;
	/**
	 * 登陆
	 * @param loginName
	 * @return
	 * @throws XunjiaException
	 */
	public UserInfo login(String loginName) throws XunjiaException;
	/**
	 * 购买超链接广告
	 * @param hyperlinkAdvInfo
	 * @throws XunjiaException
	 */
	public void buyAHyperlinkAdv(HyperlinkAdvInfo hyperlinkAdvInfo) throws XunjiaException;
	/**
	 * 购买关键字广告
	 * @param eywordsAdvInfo
	 * @throws XunjiaException
	 */
	public void buyAKeywordsAdv(List<KeywordsAdvInfo> keywordsAdvInfo,List<Keywords> keyword) throws XunjiaException;
	/**
	 * 按关键字搜索关键字广告
	 * 供询价外网API使用
	 * @return
	 * @throws XunjiaException
	 */
	public List<Keywords> getKeywordsAdvByKeywordsLike(String keywords,int size,String type) throws XunjiaException;
	/**
	 * 按广告位置获取超链接广告信息
	 * @param pid广告位置ID
	 * @return
	 * @throws XunjiaException
	 */
	public List<HyperlinkAdvInfo> getHyperlinkAdvInfoByPosition(String positon) throws XunjiaException;
}
